『The Programmer's Brain - What every programmer needs to know about cognition』
https://images-na.ssl-images-amazon.com/images/I/61ImG9hpTdL.jpg
目次
foreword
preface
acknowledgments
about this book
about the author
about the cover illustration
Part 1 On reading code better
1 Decoding your confusion while coding
1.1 Different kinds of confusion in code
1.2 Different cognitive processes that affect coding
1.3 Cognitive processes in collaboration
2 Speed reading for code
2.1 Quickly reading code
2.2 Overcoming size limits in your memory
2.3 You see more code than you can read
3 How to learn programming syntax quickly
3.1 Tips for remembering syntax
3.2 How to learn syntax quickly with flashcards
3.3 How to not forget things
3.4 How to remember syntax longer
4 How to read complex code
4.1 Why it’s hard to understand complex code
4.2 Techniques to reduce cognitive load
4.3 Memory aids to use when your working memory is overloaded
Part 2 On thinking about code
5 Reaching a deeper understanding of code
5.1 Roles of variables framework
5.2 Roles and paradigms
5.3 Gaining a deeper knowledge of programs
5.4 Reading text is similar to reading code
5.5 Text comprehension strategies applied to code
6 Getting better at solving programming problems
6.1 Using models to think about code
6.2 Mental models
6.3 Notional machines
6.4 Notional machines and language
6.5 Notional machines and schemata
7 Misconceptions: Bugs in thinking
7.1 Why learning a second programming language is easier than learning the first one
7.2 Misconceptions: Bugs in thinking
Part 3 On writing better code
8 How to get better at naming things
8.1 Why naming matters
8.2 Cognitive aspects of naming
8.3 What types of names are easier to understand?
8.4 The influence of names on bugs
8.5 How to choose better names
9 Avoiding bad code and cognitive load: Two frameworks
9.1 Why code with code smells creates a lot of cognitive load
9.2 The influence of bad names on cognitive load
10 Getting better at solving complex problems
10.1 What is problem solving?
10.2 What is the role of the LTM when you solve programming problems?
10.3 Automatization: Creating implicit memories
10.4 Learning from code and its explanation
Part 4 On collaborating on code
11 The act of writing code
11.1 Different activities while programming
11.2 Programmer interrupted
12 Designing and improving larger systems
12.1 Examining the properties of codebases
12.2 Dimensions and activities
13 How to onboard new developers
13.1 Issues in the onboarding process
13.2 Differences between experts and novices
13.3 Activities for a better onboarding process
epilogue
index